Azure 助力下,C9 电竞战队所向披靡!
技术背景
挖掘难以捕捉的数据
游戏确实是大数据的来源,但因为其呈现的是动态的交互世界,要捕捉这些数据并不像读取物联网传感器数据那样简单。尽管每周都有数千场比赛,但 Cloud9 选手和教练最感兴趣的比赛遥测数据并不一定能记录下来,或体现在 API 中。那么,如何挖掘非现成数据?即便能挖掘,适用于某一赛事的成功法则在下一场游戏就一定奏效吗?如何才能收集到真正影响比赛走向的信息?为了保持玩家的黏性,游戏开发商会发布变更游戏关键参数的补丁,而这些补丁往往每隔几周就会改变游戏数据,并引发游戏策略和比赛趋势的变革,让游戏更具挑战性。
微软电竞行业技术总监迈克·唐尼(Mike Downey)介绍, Cloud9 和微软就如何挖掘数据并分析影响赛事关键因素的问题进行了讨论。微软认为这个问题很有价值,很快便和 Cloud9 旗下所有战队,包括北美英雄联盟锦标赛系列赛 LCS 战队和《反恐精英:全球攻势》战队开始了正式技术合作,基于大数据实现战绩分析。Cloud9 和微软的工程师与数据科学家团队开始了对这些难以捕捉的数据的挖掘,同时还要想办法将其转化为可供 Cloud9 选手和教练使用的有效信息。
“我们的第一步是定位哪些是最重要但目前还无法获取的数据,接着,我们在 Azure 上创建大数据处理的工作流,自动化地获取、捕捉上述数据,并将其转化为有用的信息。”
——微软电竞行业技术总监迈克·唐尼
视频内容挖掘
网络直播视频是
AI 提取分析数据的宝库。基于 AI 的视频分析可实时捕捉视频流中的信息。当然,第一步还是要获取视频素材。Cloud9
团队的第一要务就是获取比赛视频,并使用 Azure 计算机视觉 API
来处理视频图像、获取有用信息(例如敌方的动线和行为趋势)。计算机视觉算法可按照输入的内容以不同的方式分析视觉信息。举例来说,API
可以检测出图像的人或物并提取出其中的文本内容。唐尼解释道:“我们可以观察到整场比赛的进程,选手采用的特定动作以及该动作导致的结果。一旦发现规律,我们便可以制定对策。”
为完善分析结果,Cloud9 研发团队与微软研究院的 Watch For 团队也展开了密切合作。Watch For 开发了极具突破性的 AI 视频分析平台,该平台在微软举办的一次编程马拉松活动中一战成名,它的算法能实时定位最有意义的视频流内容并挖掘出视频中最引人入胜的内容,这一点即便是人工也难以做到。微软 Bing 搜索引擎也使用了该技术用来分析游戏直播视频并从中提取数据,为用户提供更满意的搜索结果。
引入 Watch For 的算法之后,Cloud9 研发团队将其代码移植到.NET Core,再将其部署到基于 Linux 内核的 Azure Docker 容器中。开发人员基于 Azure Pipelines 构建了用于挖掘游戏视频的 DevOps 工作流,用来监测、定位视频中有意义的信息,并将其转化为有用的数据,存储到便于提取的位置。同时通过监控系统实时监控游戏洞察平台的运行状况,并将更新和变化信息通知管理员。此外还有专门负责 Power BI 的团队开发了一套用于数据可视化及查询的自定义平台。
从一场 LOL 比赛,到给出定制化的战略统计数据,最终形成了一个复杂且精密的端到端解决方案,该平台每天可以处理数百个视频并将数据推送至 Azure,Azure 上的工作流可以运行、分析并导出有效信息以供后续分析。
“这套基于 Azure 的数据分析流程为我们提供了以前无法获得的数据,也使 Cloud9 获得了其他所有对手都没有的巨大竞争优势。”
——Cloud9 首席数据科学家海立·梅森
云端架构设计
C9 游戏洞察平台的主体架构分为四个部分:
提取与存储:通过队列记录所需游戏视频并将结果存入 Azure Blob 存储。
模型运行:通过 Watch For AI 系统中的机器学习模型来定位视频中的关键内容并将模型产出的内容存入 Azure Database forPostgreSQL,完全托管的高性能、可扩展、安全的 PostgreSQL 数据库,以供后续分析。
自动处理:每接收到一个视频,一个事件驱动、基于容器的工作流便会启动。这一无服务器流程将视频数据转化为可显示和可分析的信息。
DevOps:基于 Azure Pipelines,研发团队创建了持续集成(CI)与持续部署(CD)工作流,用于在 Azure 上部署、测试平台组件,并验证分析结果。
Cloud9 首席数据科学家海立·梅森谈到,游戏洞察平台成功的关键在于基于 Azure 实现了最优化的架构,通过无缝整合本地方案和 Azure 云端服务的混合架构模式突破了技术瓶颈。
本地和云端环境会轮流处理数据。该混合平台基于 Azure Queue Storage 队列存储和 Azure Functions 无服务器计算对触发事件进行排序和实时响应。Azure Queue 用于存储海量消息,在 Cloud9 平台的建立中,Azure Queue 将待挖掘视频内容的优先级列表加入队列。Azure Functions 是一项无服务器计算服务,可以帮助开发人员无需管理底层基础设施即可快速运行事件驱动的数据处理流程。Azure Function 的代码包含所有通知和对应响应,Azure Functions 可响应队列消息,转换传入的数据,然后将其传递至下一队列。所有自动化处理都始于云端的定时提取启动功能,触发本地服务器开始抓取视频然后将其传送至 Azure。每接收到一个视频,便会触发启动基于容器的数据处理流程。梅森指出:“这套架构非常复杂,其中队列系统和事件驱动的计算是追踪所有比赛的重要组成。”为了实现架构的可扩展性,该平台的所有功能都在 Azure App Service 容器上运行。此外团队还通过 App Service 托管了一个小型 Web 服务器。模型运行和自动处理的负载基于 Azure Container Instances 容器实例部署,完全是托管的无服务器化的 Azure 环境。开发人员可以将复杂的任务运行在事件驱动的自动启动的容器环境,并使用容器开发工作流实现快速部署。Azure 容器实例还具有动态扩展功能以满足峰值处理负载并提供按秒计费的灵活计费模式,比配置固定的基础架构更节省成本。唐尼表示:“我们希望这个平台能易于扩展,有了 Azure 容器实例,只需在 Azure 管理后台切换几次,即可将平台处理规模从每天数百个游戏拓展到数千个。”
“Azure Container Instances 容器实例是整个处理流程中非常重要的组成部分,支持一键式部署工作流,易于维护,并扩展到其他游戏项目中。”
——微软电竞行业技术总监迈克·唐尼
创建 Pipeline
为了在更短的时间内创造更多的价值,C9 团队创建了自动化启动和发布的 Pipeline,包括用来部署代码的 Azure 基础架构。唐尼表示:“借助 Azure Pipelines,我们可以实现全流程自动化并快速为生产系统增加功能。”开发人员创建了自动化且可重复的流程,用于运行启动程序、执行测试和部署软件发布,通过
Terraform 脚本描述 Pipeline 在测试和生产环境所需要的基础资源,模板化的部署也使 Cloud9
团队更易于维护平台。同时为实现工作流自动化使用了不同类型的 Azure Pipelines 触发器。举例来说,当有开发人员更改代码并发起
pull request 请求时,新的 Pipeline 便会被触发,之后 Docker 会将新的镜像推送至 Azure Container
Registry,用于存储和管理容器镜像的专用 Docker 注册表。之后 Azure
容器实例从注册表中提取新存入的镜像,并开始对游戏数据执行相关的任务。这样 Cloud9 可以完全不依赖于托管环境来管理代码和功能的配置。
此外,Azure 内置了多项可设置特定规则的监测服务。Azure Monitor 可监测各类 Azure 服务的运行指标和日志并且包含 Application Insights 服务,一项可扩展的应用监测管理服务(APM),用于监测应用的运行状况、性能、报错等各种异常。同时 Azure Monitor 的日志分析功能可以将 Application Insights 收集的使用率和性能数据与平台所使用的各种 Azure 资源的配置和性能数据一起分析。Cloud9 资深数据工程师 Danny Brady 谈到:“游戏洞察平台的日志价值巨大,Application Insights 能收集所有本地和云端日志,使我们能有一个统一的分析视角”
“难以掌控的多数据源是整体架构的巨大挑战,Azure 帮助我们实现了高容错性、数据完整性和一键式部署的稳定方案。”
——Cloud9 首席数据科学家海立·梅森
制胜策略可视化
经过一系列复杂的云端处理流程后,平台输出的数据会通过微软
Power BI 自定义实时仪表板呈现。通过 Power
BI,教练和选手可以按玩家、赛事和其他变量查找所需数据,并查看长期趋势。举例来说,Cloud9
的管理人员可以在仪表板上直接看到队员的训练时间是否达到要求,之前管理人员需要手动逐个验证每个队员的练习时长。而选手们则可以通过仪表板追踪某段时间的胜率、比赛策略和走势。Power
BI 可以打造类似手机 App 的简单体验,让选手和教练无需任何培训便可使用,这能大幅加快数据洞察平台在 C9
日常工作中推广使用的进程,选手和其他团队成员可以从 Power BI 提供的安卓和 iOS 移动应用程序中随时随地查看自己关注的数据。
展望
电竞的目标是取胜,而游戏洞察平台正在成为
Cloud9 新的取胜之道。在最近的一场比赛中,甚至连评论员都提到 Cloud9 的新策略已经生效了。作为打破边界的创新开发,Cloud9
目前不便于透露它展现的令人惊喜的具体洞察数据,但是该平台的开发团队很乐意分享其在其他场景也可复制的架构思路,即如何在看似没有可用数据的情况下完成数据分析和洞察。正如唐尼所说:“这不是定制化开发,而是通过部署 Azure 服务实现整个架构。”
C9 团队已经计划好了下一步的扩展计划首先是收集海量的数据,然后通过更多的技术工具,比如 Azure Databricks 充分地发挥出这些数据的价值。
“在和 Azure 合作之前,我们一直遵循着“从繁复的观察中找到规律”这样一个费时费力的工作方法。如今数据分析帮助我们在比赛中做出比以往更明智、更数据导向的决策。”
——Cloud9 首席数据科学家海立·梅森
Microsoft Azure 为 CSDN 粉丝带来专属“游戏出海大礼包”:
第一重礼: 有海外上线需求的游戏出海客户,可免费获得Microsoft Azure 5000 美金起的企业级云资源额度,覆盖全球 60+ 个区域!
第二重礼:Azure DDoS Protection 游戏出海防护计划为运行在 Azure 上的游戏提供:最长达 3 个月的开服期免费 DDoS 防护支持!
第三重礼:加入 Azure 游戏出海 VVIP 俱乐部, 享有免费原厂 24*7 技术支持,游戏上线期间上门重点保障,15 分钟反馈,以及微软技术专家定制开发及优化支持,Devops, 大数据,AI 应用迅速上线!
第四重礼:运行在 Azure 上的游戏可享有微软全球联合市场营销及游戏宣传支持!
扫描下方二维码免费申请, Get C9 同款云端架构吧!